//  @ Project : GagalPanen
//  @ File Name : game.hpp
//  @ Date : 3/9/2011
//  @ Author : 
//
//


#if !defined(_GAME_H)
#define _GAME_H

#include "gameinterface.hpp"
#include "creatures.hpp"
#include "inventory.hpp"
#include "gametime.hpp"

class Game : public GameInterface {
public:
  Game();
  Game(string filename);
  int getActionsCount();
  Creatures* getCreatures();
  Inventory* getInventory();
  Maps* getMaps();
  int getMaximumActionsPerDay();
  void playerBuy(int slot_id);
  void playerHarvest();
  void playerMove(int kode_arah);
  void playerPlow();
  void playerPut(int slot_id);
  void playerShowStore();
  void playerSickle();
  void playerTeleport();
  void playerWakeSpriteUp(int id);
  void playerWater();
  void saveGame();
  void setSpriteToSleep(int id);
  void start();
  void exitGame();
private:
  Creatures creatures_;
  Inventory inventory_;
  Maps maps_;
  GameTime time_;
  void advanceDay();
  void advanceTime();
  void updateGraphics();
};

#endif  //_GAME_H
